#coding:utf-8
import os
import argparse
import fitz


def pdf_image(pdfPath, imgPath, zoom_x=5, zoom_y=5, rotation_angle=0):
    '''
        # 将PDF转化为图片
        pdfPath pdf文件的路径
        imgPath 图像要保存的文件夹
        zoom_x x方向的缩放系数
        zoom_y y方向的缩放系数
        rotation_angle 旋转角度
    '''
    # 打开PDF文件
    pdf = fitz.open(pdfPath)
    # 逐页读取PDF
    for pg in range(0, pdf.pageCount):
        page = pdf[pg]
        # 设置缩放和旋转系数
        trans = fitz.Matrix(zoom_x, zoom_y).preRotate(rotation_angle)
        pm = page.getPixmap(matrix=trans, alpha=False)
        # 开始写图像
        pm.writePNG(imgPath + str(pg) + '.png')
    pdf.close()


if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('--iPdf', help='pdf path')
    parser.add_argument('--oDir', help='output dir')
    args = parser.parse_args()

    if not os.path.exists(args.oDir):
        os.makedirs(args.oDir)
    pdf_image(args.iPdf, args.oDir + '/Page-')
